package com.softeem.music_sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.softeem.music_sys.comm.Result;
import com.softeem.music_sys.entity.PlayRecord;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author RD
* @description 针对表【play_record(用户播放记录)】的数据库操作Service
* @createDate 2025-11-07 11:19:17
*/
public interface PlayRecordService extends IService<PlayRecord> {

    /**
     * 添加播放记录
     */
    Result addPlayRecord(PlayRecord playRecord);

    /**
     * 更新播放记录
     */
    Result updatePlayRecord(PlayRecord playRecord);

    /**
     * 删除播放记录
     */
    Result deletePlayRecord(Integer id);

    /**
     * 根据用户ID获取播放记录
     */
    Page<PlayRecord> getRecordsByUser(Integer userId, Integer page, Integer limit);

    /**
     * 根据音乐ID获取播放记录
     */
    Page<PlayRecord> getRecordsByMusic(Integer musicId, Integer page, Integer limit);

    /**
     * 获取用户最近播放记录
     */
    Page<PlayRecord> getRecentRecordsByUser(Integer userId, Integer limit);

    /**
     * 统计播放次数
     */
    long countPlayTimes(Integer userId, Integer musicId);

    /**
     * 清空用户播放记录
     */
    Result clearUserRecords(Integer userId);

    /**
     * 按时间范围查询播放记录
     */
    Page<PlayRecord> getRecordsByTimeRange(Integer userId, String startDate, String endDate, Integer page, Integer limit);
}